#include<iostream>
#include<cstdlib>
using namespace std;

const int n=9;
const int N=10;
int arr[N][N];
bool row[N][N], col[N][N], sign[N/3][N/3][N];

void dfs(int x, int y)
{
	if(x==n)
	{
		for(int i=0; i<n; i++)
		{
			for(int j=0; j<n; j++)
			{
				cout<<arr[i][j]<<" ";
			}
			cout<<endl;
		}
		exit(0);
	}
	if(y==n)
	{
		dfs(x+1, 0);
		return;
	}
	if(arr[x][y] > 0)
	{
		dfs(x, y+1);
		return;	
	} 	
	for(int k=1; k<=9; k++)
	{
		if(row[x][k] || col[y][k] || sign[x/3][y/3][k]) continue;
		row[x][k]=col[y][k]=true;
		sign[x/3][y/3][k]=true;
		arr[x][y]=k;
		dfs(x, y+1);
		arr[x][y]=0;
		row[x][k]=col[y][k]=false;
		sign[x/3][y/3][k]=false;
	}
}
int main()
{
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<n; j++)
		{
			int x; cin>>x;
			arr[i][j]=x;
			if(x>0)
			{
				row[i][x]=col[j][x]=true;
				sign[i/3][j/3][x]=true;
			}
		}
	}
	dfs(0, 0);
	
	return 0;
}
